package com.ophelisis.common.util;

import java.util.List;

import com.ophelisis.common.consts.ConstCode.MenuGNB;

public class MenuUtil {

	/* 
	 * 메뉴 권한이 있는지 확인
	 */
	public static boolean isMenuAuth(int authlevel, String menuauth) {

		if (menuauth == null) return true;
		if (menuauth.length() < 10) return true;
		if (authlevel < 0) authlevel = 0;
		if (menuauth.charAt(authlevel) != '0') return true;
		
		return false;
	}
	public static boolean isMenuAuth(String authlevel, String menuauth) {

		if (authlevel == null) return true;
		if (authlevel.length() != 1) return false;
		int alevel = Integer.parseInt(authlevel);
		return isMenuAuth(alevel, menuauth);
	}

	/*
	 * 대분류 메뉴 항목 리스트 획득
	 */
	public static List<MenuGNB> getMenuGroup() {
		return MenuGNB.getMenuGroup();
	}

	/*
	 * 중분류 메뉴 항목 리스트 획득
	 */
	public static List<MenuGNB> getMenus(String groupId) {
		return MenuGNB.getMenus(groupId);
	}

	/*
	 * groupId를 이용한 대분류 메뉴 항목 획득
	 */
	public static MenuGNB getGroupMenu(String groupId) {
		return MenuGNB.get(groupId);
	}

	/*
	 * 대분류 메뉴의 사용 가능한 권한이 있는 첫번째 중분류 메뉴 항목 획득
	 */
	public static MenuGNB getMenuFirst(String groupId, int authlevel) {
		List<MenuGNB> mn = getMenus(groupId);
		MenuGNB res = null;
		for (MenuGNB mgnb : mn) {
			if (mgnb.getAction().indexOf("#") != 0 && !mgnb.getGroupId().equals("")) {
				res = mgnb;
				break;
			}
		}
		return res;
	}
	public static MenuGNB getMenuFirst(String groupId, String authlevel) {
		int alevel = Integer.parseInt(authlevel);
		return getMenuFirst(groupId, alevel);
	}
}
